<?php

require("Base.php");

class class_Stores extends class_Base
{
  function __construct() {
    parent::__construct();
  }


  public function method_escribir_transporte($params, $error) {
  	$p = $params[0];
  	
  	$cambios = $p->cambios;
  	
	mysql_query("START TRANSACTION");
	
	foreach ($cambios->altas as $item) {
		$sql="INSERT INTO transporte SET descrip='" . $item->descrip . "', domicilio='" . $item->domicilio . "', telefono='" . $item->telefono . "', email='" . $item->email . "', repone='" . $item->repone . "'";
		mysql_query($sql);
		if (mysql_errno()) break;
	}
	if (! mysql_errno()) {
		foreach ($cambios->modificados as $item) {
			$sql="UPDATE transporte SET descrip='" . $item->descrip . "', domicilio='" . $item->domicilio . "', telefono='" . $item->telefono . "', email='" . $item->email . "', repone='" . $item->repone . "' WHERE id_transporte='" . $item->id_transporte . "'";
			mysql_query($sql);
			if (mysql_errno()) break;
		}	
	}
	if (mysql_errno()) {
		mysql_query("ROLLBACK");
		return mysql_error();
	} else {
		mysql_query("COMMIT");
	}
  }
  
  
  public function method_escribir_unidad($params, $error) {
  	$p = $params[0];
  	
  	$cambios = $p->cambios;
  	
	mysql_query("START TRANSACTION");
	
	foreach ($cambios->altas as $item) {
		$sql="INSERT INTO unidad SET descrip='" . $item->descrip . "'";
		mysql_query($sql);
		if (mysql_errno()) break;
	}
	if (! mysql_errno()) {
		foreach ($cambios->modificados as $item) {
			$sql="UPDATE unidad SET descrip='" . $item->descrip . "' WHERE id_unidad='" . $item->id_unidad . "'";
			mysql_query($sql);
			if (mysql_errno()) break;
		}	
	}
	if (mysql_errno()) {
		mysql_query("ROLLBACK");
		return mysql_error();
	} else {
		mysql_query("COMMIT");
	}
  }


  public function method_escribir_moneda($params, $error) {
  	$p = $params[0];
  	
  	$cambios = $p->cambios;
  	
	mysql_query("START TRANSACTION");
	
	foreach ($cambios->altas as $item) {
		$sql="INSERT INTO moneda SET descrip='" . $item->descrip . "', simbolo='" . $item->simbolo . "', cotizacion='" . $item->cotizacion . "'";
		mysql_query($sql);
		if (mysql_errno()) break;
	}
	if (! mysql_errno()) {
		foreach ($cambios->modificados as $item) {
			$sql="UPDATE moneda SET descrip='" . $item->descrip . "', simbolo='" . $item->simbolo . "', cotizacion='" . $item->cotizacion . "' WHERE id_moneda='" . $item->id_moneda . "'";
			mysql_query($sql);
			if (mysql_errno()) break;
		}	
	}
	if (mysql_errno()) {
		mysql_query("ROLLBACK");
		return mysql_error();
	} else {
		mysql_query("COMMIT");
	}
  }
  

  public function method_escribir_color($params, $error) {
  	$p = $params[0];
  	
  	$cambios = $p->cambios;
  	
	mysql_query("START TRANSACTION");
	
	foreach ($cambios->altas as $item) {
		$sql="INSERT INTO color SET descrip='" . $item->descrip . "'";
		mysql_query($sql);
		if (mysql_errno()) break;
	}
	if (! mysql_errno()) {
		foreach ($cambios->modificados as $item) {
			$sql="UPDATE color SET descrip='" . $item->descrip . "' WHERE id_color='" . $item->id_color . "'";
			mysql_query($sql);
			if (mysql_errno()) break;
		}	
	}
	if (mysql_errno()) {
		mysql_query("ROLLBACK");
		return mysql_error();
	} else {
		mysql_query("COMMIT");
	}
  }


  public function method_escribir_fabrica($params, $error) {
  	$p = $params[0];
  	
  	$cambios = $p->cambios;
  	
	mysql_query("START TRANSACTION");
	
	foreach ($cambios->altas as $item) {
		$sql="INSERT INTO fabrica SET descrip='" . $item->descrip . "', desc_fabrica='" . $item->desc_fabrica . "'";
		mysql_query($sql);
		if (mysql_errno()) break;
	}
	if (! mysql_errno()) {
		foreach ($cambios->modificados as $item) {
			$sql="UPDATE fabrica SET descrip='" . $item->descrip . "', desc_fabrica='" . $item->desc_fabrica . "' WHERE id_fabrica='" . $item->id_fabrica . "'";
			mysql_query($sql);
			if (mysql_errno()) break;
		}	
	}
	if (mysql_errno()) {
		mysql_query("ROLLBACK");
		return mysql_error();
	} else {
		mysql_query("COMMIT");
	}

  }
}

session_start();

require('conexion.php');

$link = mysql_connect("$servidor", "$usuario", "$password");
mysql_select_db("$base", $link);
mysql_query("SET NAMES 'utf8'");


switch ($_REQUEST['rutina']) {
case 'leer_arbol': {

$agregados=array();
$arbol=array();

if ($_REQUEST['descrip']=="") {
	$sql = "SELECT * FROM arbol ORDER BY id_arbol";
} else {
	$sql ="(SELECT * FROM arbol WHERE id_arbol = ANY (SELECT id_arbol FROM producto WHERE descrip LIKE '%" . $_REQUEST['descrip'] . "%'))";
	$sql.=" UNION DISTINCT"; 
	$sql.=" (SELECT * FROM arbol WHERE descrip LIKE '%" . $_REQUEST['descrip'] . "%')";
	$sql.=" ORDER BY id_arbol";	
}

$rs = mysql_query($sql);
while ($reg = mysql_fetch_object($rs)) {
	$reg->cant_hijos = (int)$reg->cant_hijos;
	$reg->cant_productos = (int)$reg->cant_productos;
	posicionarNodo($reg);
}

header('Content-Type: application/json');
echo json_encode($arbol[0]);

break;
}



case 'leer_transporte': {

$resultado=array();

$sql = "SELECT * FROM transporte";
$rs = mysql_query($sql);
while ($reg = mysql_fetch_object($rs)) {
	$reg->repone = (bool) $reg->repone;
	$resultado[] = $reg;
}

header('Content-Type: application/json');
echo json_encode($resultado);

break;
}



case 'leer_unidad': {

$resultado=array();

$sql = "SELECT id_unidad, descrip FROM unidad";
$rs = mysql_query($sql);
while ($reg = mysql_fetch_object($rs)) {
	$resultado[] = $reg;
}

header('Content-Type: application/json');
echo json_encode($resultado);

break;
}



case 'leer_moneda': {

$resultado=array();

$sql = "SELECT * FROM moneda";
$rs = mysql_query($sql);
while ($reg = mysql_fetch_object($rs)) {
	$reg->cotizacion = (float) $reg->cotizacion;
	$resultado[] = $reg;
}

header('Content-Type: application/json');
echo json_encode($resultado);

break;
}



case 'leer_fabrica': {

$resultado=array();

$sql = "SELECT * FROM fabrica";
$rs = mysql_query($sql);
while ($reg = mysql_fetch_object($rs)) {
	$reg->desc_fabrica = (float) $reg->desc_fabrica;
	$resultado[] = $reg;
}

header('Content-Type: application/json');
echo json_encode($resultado);

break;
}



case 'leer_color': {

$resultado=array();

$sql = "SELECT id_color, descrip FROM color ORDER BY descrip";
$rs = mysql_query($sql);
while ($reg = mysql_fetch_object($rs)) {
	$resultado[] = $reg;
}

header('Content-Type: application/json');
echo json_encode($resultado);

break;
}

}



function posicionarNodo(&$hijo) {
	global $agregados, $arbol;
	
	$hijo->hijos = array();
	$agregados[$hijo->id_arbol] = $hijo;
	
	if ($hijo->id_padre=='0') {
		$arbol[] = $hijo;
	} else {
		$padre = $agregados[$hijo->id_padre];
		if (is_null($padre)) {
			$sql = "SELECT * FROM arbol WHERE id_arbol=" . $hijo->id_padre;
			$rs = mysql_query($sql);
			$reg = mysql_fetch_object($rs);
			$padre = posicionarNodo($reg);
		}
		$padre->hijos[] = $hijo;
	}
	return $hijo;
}

?>